

Function NumberToText(Number As Double, MainCurrency As String, SubCurrency As String)
Dim Array1(0 To 9) As String
Dim Array2(0 To 9) As String
Dim Array3(0 To 9) As String
Dim MyNumber As String
Dim GetNumber As String
Dim ReadNumber As String
Dim My100 As String
Dim My10 As String
Dim My1 As String
Dim My11 As String
Dim My12 As String
Dim GetText As String
Dim Billion As String
Dim Million As String
Dim Thousand As String
Dim Hundred As String
Dim Fraction As String
Dim MyAnd As String
Dim i As Integer
Dim ReMark As String


If Number > 999999999999.99 Then Exit Function
If Number < 0 Then
Number = Number * -1
ReMark = " "
End If

If Number = 0 Then
NumberToText = ""
Exit Function
End If

MyAnd = " "
Array1(0) = ""
Array1(1) = ""
Array1(2) = ""
Array1(3) = ""
Array1(4) = ""
Array1(5) = ""
Array1(6) = ""
Array1(7) = ""
Array1(8) = ""
Array1(9) = ""

Array2(0) = ""
Array2(1) = " "
Array2(2) = ""
Array2(3) = ""
Array2(4) = ""
Array2(5) = ""
Array2(6) = ""
Array2(7) = ""
Array2(8) = ""
Array2(9) = ""

Array3(0) = ""
Array3(1) = ""
Array3(2) = ""
Array3(3) = ""
Array3(4) = ""
Array3(5) = ""
Array3(6) = ""
Array3(7) = ""
Array3(8) = ""
Array3(9) = ""

GetNumber = Format(Number, "000000000000.00")

i = 0
Do While i < 15

If i < 12 Then
MyNumber = Mid$(GetNumber, i + 1, 3)
Else
MyNumber = "0" + Mid$(GetNumber, i + 2, 2)
End If

If (Mid$(MyNumber, 1, 3)) > 0 Then

ReadNumber = Mid$(MyNumber, 1, 1)
My100 = Array1(ReadNumber)
ReadNumber = Mid$(MyNumber, 3, 1)
My1 = Array3(ReadNumber)
ReadNumber = Mid$(MyNumber, 2, 1)
My10 = Array2(ReadNumber)

If Mid$(MyNumber, 2, 2) = 11 Then My11 = " "
If Mid$(MyNumber, 2, 2) = 12 Then My12 = " "
If Mid$(MyNumber, 2, 2) = 10 Then My10 = ""

If ((Mid$(MyNumber, 1, 1)) > 0) And ((Mid$(MyNumber, 2, 2)) > 0) Then My100 = My100 + MyAnd
If ((Mid$(MyNumber, 3, 1)) > 0) And ((Mid$(MyNumber, 2, 1)) > 1) Then My1 = My1 + MyAnd

GetText = My100 + My1 + My10

If ((Mid$(MyNumber, 3, 1)) = 1) And ((Mid$(MyNumber, 2, 1)) = 1) Then
GetText = My100 + My11
If ((Mid$(MyNumber, 1, 1)) = 0) Then GetText = My11
End If

If ((Mid$(MyNumber, 3, 1)) = 2) And ((Mid$(MyNumber, 2, 1)) = 1) Then
GetText = My100 + My12
If ((Mid$(MyNumber, 1, 1)) = 0) Then GetText = My12
End If

If (i = 0) And (GetText <> "") Then
If ((Mid$(MyNumber, 1, 3)) > 10) Then
Billion = GetText + " "
Else
Billion = GetText + " "
If ((Mid$(MyNumber, 1, 3)) = 2) Then Billion = " "
If ((Mid$(MyNumber, 1, 3)) = 2) Then Billion = " "
End If
End If

If (i = 3) And (GetText <> "") Then

If ((Mid$(MyNumber, 1, 3)) > 10) Then
Million = GetText + " "
Else
Million = GetText + " "
If ((Mid$(MyNumber, 1, 3)) = 1) Then Million = " "
If ((Mid$(MyNumber, 1, 3)) = 2) Then Million = " "
End If
End If

If (i = 6) And (GetText <> "") Then
If ((Mid$(MyNumber, 1, 3)) > 10) Then
Thousand = GetText + " "
Else
Thousand = GetText + " "
If ((Mid$(MyNumber, 3, 1)) = 1) Then Thousand = " "
If ((Mid$(MyNumber, 3, 1)) = 2) Then Thousand = " "
End If
End If

If (i = 9) And (GetText <> "") Then Hundred = GetText
If (i = 12) And (GetText <> "") Then Fraction = GetText
End If

i = i + 3
Loop

If (Billion <> "") Then
If (Million <> "") Or (Thousand <> "") Or (Hundred <> "") Then Billion = Billion + MyAnd
End If

If (Million <> "") Then
If (Thousand <> "") Or (Hundred <> "") Then Million = Million + MyAnd
End If

If (Thousand <> "") Then
If (Hundred <> "") Then Thousand = Thousand + MyAnd
End If

If Fraction <> "" Then
If (Billion <> "") Or (Million <> "") Or (Thousand <> "") Or (Hundred <> "") Then
NumberToText = ReMark + Billion + Million + Thousand + Hundred + " " + MainCurrency + MyAnd + Fraction + " " + SubCurrency
Else
NumberToText = ReMark + Fraction + " " + SubCurrency
End If
Else
NumberToText = ReMark + Billion + Million + Thousand + Hundred + " " + MainCurrency
End If
End Function


